//导入数据库
const db = require('../db')

//获取成绩信息的处理函数
exports.getAllResults = (req, res) => {
    //查询未删除的成员信息 limit 表示从第几个索引值开始 每页显示的数量
    const sql = `SELECT * FROM stu_results where is_delete=0 order by id DESC limit ?, ?`;

    //需要传几条数据
    const count = +req.query.count //有可能是字符串 需转成数字类型 + 隐式转换

    //每页显示的数量
    const startIndex = (req.query.pageNum - 1) * count

    db.query(sql, [startIndex, count], (err, results1) => {
        if (err) return res.sd(err.message)
        if (results1.length < 1) return res.sd('获取成绩信息失败')

        //查询获取班级信息总数量
        const sql = `select count(id) as total from stu_results where is_delete=0`

        db.query(sql, (err, results2) => {


            if (err) return res.sd(err.message)

            if (results2.length < 1) return res.sd('获取成绩信息失败！')
            res.send({
                status: 0,
                message: '获取成绩信息成功',
                data: results1,
                total: results2[0].total //总数据条数
            })
        })

    })
}

//新增成绩信息的处理函数
exports.addResults = (req, res) => {
    const sql = `insert into stu_results set ?`
    db.query(sql, req.body, (err, results) => {
        if (err) return res.sd(err.message)
        if (results.affectedRows !== 1) return res.sd('添加成绩信息失败！')

        res.send({
            status: 0,
            message: '添加成绩信息成功'
        })
    })
}

//更新成绩信息的处理函数
exports.updateResults = (req, res) => {
    const sql = `select * from stu_results where id=? and is_delete=0`

    db.query(sql, [req.body.id], (err, results) => {
        if (err) return res.sd(err.message)

        if (results.length !== 1) return res.sd('该成绩信息不存在')


        const sql = `update stu_results set ? where id=?`

        db.query(sql, [req.body, req.body.id], (err, results) => {
            if (err) return res.sd(err.message)

            if (results.affectedRows !== 1) return res.sd('更新成绩信息失败')

            res.send({
                status: 0,
                message: "更新成绩信息成功"
            })
        })
    })
}

//根据id获取成绩信息
exports.getResultsById = (req, res) => {
    const sql = `select * from stu_results where id=? and is_delete=0`

    db.query(sql, req.query.id, (err, results) => {
        if (err) return res.sd(err.message)

        if (results.length !== 1) return res.sd('获取成绩信息失败！')

        res.send({
            status: 0,
            message: '获取成绩信息成功',
            data: results
        })
    })
}


//删除成绩信息的处理函数
exports.deleteResults = (req, res) => {
    const sql = `select * from stu_results where id=? and is_delete=0`
    db.query(sql, req.body.id, (err, results) => {
        if (err) return res.sd(err.message)
        if (results.length !== 1) return res.sd('该成绩信息不存在')

        const sql = `update stu_results set is_delete=1 where id=?`

        db.query(sql, req.body.id, (err, results) => {
            if (err) return res.sd(err.message)
            if (results.affectedRows !== 1) return res.sd('删除成绩信息失败')

            res.send({
                status: 0,
                message: '删除成绩信息成功'
            })
        })
    })

}

// 根据班级分类获取成绩信息的处理函数
exports.getResultsByCate = (req, res) => {
    const sql = `select stu_name , stu_result stu_class from students.stu_results where  is_delete='0' and stu_class=?
     `;

    db.query(sql, req.query.course_id, (err, result2) => {
        if (err) return res.sd(err.message)
        if (result2.length < 1) return res.sd('获取课程信息失败')
        res.send({
            status: 0,
            message: '获取课程信息成功',
            data: result1,
            total: result2[0].total
        })


    })

}